package com.tj.bo.payment.client;

import com.tj.bo.payment.client.vo.*;

/**
 * 支付执行服务
 *
 * @author ZhangChao
 * @since 2021/7/15
 */
public interface PayCommandService {
    /**
     * 生成支付订单-支付
     * @param payApplicationVO
     * @return
     */
    PaymentOrderVO createPayOrder(PayApplicationVO payApplicationVO);


    /**
     * 生成支付订单-代付
     * @param dfPayApplicationVO
     * @return
     */
    PaymentOrderVO createDfPayOrder(DfPayApplicationVO dfPayApplicationVO);

    /**
     * 处理支付回调
     * @param payNotificationVO
     *
     * @return
     */
    PayNotificationResolveVO resolvePayNotification(PayNotificationVO payNotificationVO);

    /**
     * 同步代付订单状态
     * @param dfPaymentOrderCode
     * @return
     */
    DfPaymentOrderResultVO syncDfPayOrder(String dfPaymentOrderCode);
}
